package com.himore.api.web.model;

import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.himore.api.common.annotation.Excel;
import com.himore.api.common.core.domain.BaseEntity;
import com.himore.api.common.core.domain.CustomerDoubleSerialize;
import io.swagger.annotations.ApiModelProperty;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import org.springframework.web.multipart.MultipartFile;


/**
 * 账本信息对象 t_account_book
 *
 * @author dongwang
 * @date 2020-12-16
 */
/**
 * 账本信息对象 t_account_book
 *
 * @author dongwang
 * @date 2020-12-25
 */
public class TAccountBook extends BaseEntity {
    private static final long serialVersionUID = 1L;

    /** 账单记录id */
    private Long accountId;

    /** 用户ID */
    @ApiModelProperty(value = "用户ID",example = "0")
    private Long userId;

    /** 账单时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @ApiModelProperty(value = "账单时间")
    private Date accountTime;

    /** 总方量 */
    @ApiModelProperty(value = "总方量")
    @JsonSerialize(using = CustomerDoubleSerialize.class)
    private double accountAmount;


    /** 单价 */
    @ApiModelProperty(value = "单价")
    @JsonSerialize(using = CustomerDoubleSerialize.class)
    private double singlePrice;

    /** 工地 */
    @ApiModelProperty(value = "工地")
    private String constructionPlant;


    /** 总收入 */
    @ApiModelProperty(value = "收入")
    @JsonSerialize(using = CustomerDoubleSerialize.class)
    private Double accountSum;

    public Integer getIsIncome() {
        return isIncome;
    }

    public void setIsIncome(Integer isIncome) {
        this.isIncome = isIncome;
    }

    /** 额外收入 */
    @ApiModelProperty(value = "方量收入")
    @JsonSerialize(using = CustomerDoubleSerialize.class)
    private double accountSalary;

    // 收入类型
    private  String incomeType;

    // 支出类型
    private String payType;

    // 是否是支出
    private Integer isIncome;

    //支出类型名称
    private  String  payTypeName;
    //收入类型名称
    private String  incomeTypeName;


    /** 额外收入 */
    @ApiModelProperty(value = "收入")
    @JsonSerialize(using = CustomerDoubleSerialize.class)
    private double inputSum;


    /** 支出 */
    @ApiModelProperty(value = "支出")
    @JsonSerialize(using = CustomerDoubleSerialize.class)
    private double outcomeSum;

    public boolean isLast() {
        return isLast;
    }

    public void setLast(boolean last) {
        isLast = last;
    }

    public MultipartFile getMultipartFile() {
        return multipartFile;
    }

    public void setMultipartFile(MultipartFile multipartFile) {
        this.multipartFile = multipartFile;
    }

    /* 车号**/
    private String carNum;


    private Integer freeDays;

    private boolean isLast;

    public String getPicPath() {
        return picPath;
    }

    public void setPicPath(String picPath) {
        this.picPath = picPath;
    }

    private   MultipartFile multipartFile;



    private String picPath;

    public Integer getFreeDays() {
        return freeDays;
    }

    public void setFreeDays(Integer freeDays) {
        this.freeDays = freeDays;
    }

    public String getCarNum() {
        return carNum;
    }

    public void setCarNum(String carNum) {
        this.carNum = carNum;
    }

    public double getSinglePrice() {
        return singlePrice;
    }

    public void setSinglePrice(double singlePrice) {
        this.singlePrice = singlePrice;
    }

    public String getIncomeTypeName() {
        return incomeTypeName;
    }

    public void setIncomeTypeName(String incomeTypeName) {
        this.incomeTypeName = incomeTypeName;
    }

    public String getPayTypeName() {
        return payTypeName;
    }

    public void setPayTypeName(String payTypeName) {
        this.payTypeName = payTypeName;
    }

    public double getOutcomeSum() {
        return outcomeSum;
    }

    public void setOutcomeSum(double outcomeSum) {
        this.outcomeSum = outcomeSum;
    }

    public double getInputSum() {
        return inputSum;
    }

    public void setInputSum(double inputSum) {
        this.inputSum = inputSum;
    }

    public Long getAccountId() {
        return accountId;
    }

    public void setAccountId(Long accountId) {
        this.accountId = accountId;
    }

    public Long getUserId() {
        return userId;
    }

    public void setUserId(Long userId) {
        this.userId = userId;
    }

    public Date getAccountTime() {
        return accountTime;
    }

    public void setAccountTime(Date accountTime) {
        this.accountTime = accountTime;
    }

    public double getAccountAmount() {
        return accountAmount;
    }

    public void setAccountAmount(double accountAmount) {
        this.accountAmount = accountAmount;
    }

    public String getConstructionPlant() {
        return constructionPlant;
    }

    public void setConstructionPlant(String constructionPlant) {
        this.constructionPlant = constructionPlant;
    }

    public Double getAccountSum() {
        return accountSum;
    }

    public void setAccountSum(Double accountSum) {
        this.accountSum = accountSum;
    }

    public double getAccountSalary() {
        return accountSalary;
    }

    public void setAccountSalary(double accountSalary) {
        this.accountSalary = accountSalary;
    }

    public String getIncomeType() {
        return incomeType;
    }

    public void setIncomeType(String incomeType) {
        this.incomeType = incomeType;
    }

    public String getPayType() {
        return payType;
    }

    public void setPayType(String payType) {
        this.payType = payType;
    }


}